/*
 * @FilePath: \Src\BSP\src\drv_beep.c
 * @Description: 
 * 
 * Copyright (c) 2025 by ${w}, All Rights Reserved. 
 */

#include "main.h"

static io_operation_t drv_beep = {
    .init = beep_init,
    .io_disable = beep_reset,
    .io_enable = beep_set,
};

io_device_t beep = {
    .type = (const int8_t*)"beep",
    .drv = &drv_beep,
};

void beep_register(void)
{
    io_device_register(&beep);
}

void beep_init(void)
{
    /* 使能GPIOF时钟 */
    rcu_periph_clock_enable(RCU_GPIOA);
    /* 设置GPIO输出模式和速度 */
    gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLDOWN, GPIO_PIN_7);
    gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_7);

}

void beep_set(void)
{
    gpio_bit_write(GPIOA, GPIO_PIN_7, SET);
}

void beep_reset(void)
{
    gpio_bit_write(GPIOA, GPIO_PIN_7, RESET);
}
